package com.gzhryc.weixin.api.event;

import java.util.Map;

import com.gzhryc.weixin.api.event.msg.IEventRespMessage;
import com.gzhryc.weixin.api.event.msg.req.ImageEventMessage;
import com.gzhryc.weixin.api.event.msg.req.LinkEventMessage;
import com.gzhryc.weixin.api.event.msg.req.LocationEventMessage;
import com.gzhryc.weixin.api.event.msg.req.ShortvideoEventMessage;
import com.gzhryc.weixin.api.event.msg.req.TextEventMessage;
import com.gzhryc.weixin.api.event.msg.req.VideoEventMessage;
import com.gzhryc.weixin.api.event.msg.req.VoiceEventMessage;

/**
 * 微信交互事件处理服务
 * @author 张浩
 * @version 0.2.0
 */
public interface IInteractiveEventService {
	
	/**
	 * 接收文本
	 * @param entity
	 * @return
	 */
	public IEventRespMessage text(TextEventMessage entity,Map<String,Object> data);
	
	/**
	 * 接收音频
	 * @param entity
	 * @return
	 */
	public IEventRespMessage voice(VoiceEventMessage entity,Map<String,Object> data);

	/**
	 * 接收图片
	 * @param entity
	 * @return
	 */
	public IEventRespMessage image(ImageEventMessage entity,Map<String,Object> data);
	
	/**
	 * 接收视频
	 * @param entity
	 * @return
	 */
	public IEventRespMessage video(VideoEventMessage entity,Map<String,Object> data);

	/**
	 * 接收小视频
	 * @param entity
	 * @return
	 */
	public IEventRespMessage shortvideo(ShortvideoEventMessage entity,Map<String,Object> data);
	
	/**
	 * 接收地理位置
	 * @param entity
	 * @return
	 */
	public IEventRespMessage location(LocationEventMessage entity,Map<String,Object> data);
	
	/**
	 * 接收连接信息
	 * @param entity
	 * @return
	 */
	public IEventRespMessage link(LinkEventMessage entity,Map<String,Object> data);
}

